package org.example.ychdp.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class ConcertExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private Integer limit;

    private Long offset;

    public ConcertExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setLimit(Integer limit) {
        this.limit = limit;
    }

    public Integer getLimit() {
        return limit;
    }

    public void setOffset(Long offset) {
        this.offset = offset;
    }

    public Long getOffset() {
        return offset;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        protected void addCriterionForJDBCTime(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Time(value.getTime()), property);
        }

        protected void addCriterionForJDBCTime(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Time> timeList = new ArrayList<java.sql.Time>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                timeList.add(new java.sql.Time(iter.next().getTime()));
            }
            addCriterion(condition, timeList, property);
        }

        protected void addCriterionForJDBCTime(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Time(value1.getTime()), new java.sql.Time(value2.getTime()), property);
        }

        public Criteria andConcertidIsNull() {
            addCriterion("ConcertID is null");
            return (Criteria) this;
        }

        public Criteria andConcertidIsNotNull() {
            addCriterion("ConcertID is not null");
            return (Criteria) this;
        }

        public Criteria andConcertidEqualTo(Integer value) {
            addCriterion("ConcertID =", value, "concertid");
            return (Criteria) this;
        }

        public Criteria andConcertidNotEqualTo(Integer value) {
            addCriterion("ConcertID <>", value, "concertid");
            return (Criteria) this;
        }

        public Criteria andConcertidGreaterThan(Integer value) {
            addCriterion("ConcertID >", value, "concertid");
            return (Criteria) this;
        }

        public Criteria andConcertidGreaterThanOrEqualTo(Integer value) {
            addCriterion("ConcertID >=", value, "concertid");
            return (Criteria) this;
        }

        public Criteria andConcertidLessThan(Integer value) {
            addCriterion("ConcertID <", value, "concertid");
            return (Criteria) this;
        }

        public Criteria andConcertidLessThanOrEqualTo(Integer value) {
            addCriterion("ConcertID <=", value, "concertid");
            return (Criteria) this;
        }

        public Criteria andConcertidIn(List<Integer> values) {
            addCriterion("ConcertID in", values, "concertid");
            return (Criteria) this;
        }

        public Criteria andConcertidNotIn(List<Integer> values) {
            addCriterion("ConcertID not in", values, "concertid");
            return (Criteria) this;
        }

        public Criteria andConcertidBetween(Integer value1, Integer value2) {
            addCriterion("ConcertID between", value1, value2, "concertid");
            return (Criteria) this;
        }

        public Criteria andConcertidNotBetween(Integer value1, Integer value2) {
            addCriterion("ConcertID not between", value1, value2, "concertid");
            return (Criteria) this;
        }

        public Criteria andConcertnameIsNull() {
            addCriterion("ConcertName is null");
            return (Criteria) this;
        }

        public Criteria andConcertnameIsNotNull() {
            addCriterion("ConcertName is not null");
            return (Criteria) this;
        }

        public Criteria andConcertnameEqualTo(String value) {
            addCriterion("ConcertName =", value, "concertname");
            return (Criteria) this;
        }

        public Criteria andConcertnameNotEqualTo(String value) {
            addCriterion("ConcertName <>", value, "concertname");
            return (Criteria) this;
        }

        public Criteria andConcertnameGreaterThan(String value) {
            addCriterion("ConcertName >", value, "concertname");
            return (Criteria) this;
        }

        public Criteria andConcertnameGreaterThanOrEqualTo(String value) {
            addCriterion("ConcertName >=", value, "concertname");
            return (Criteria) this;
        }

        public Criteria andConcertnameLessThan(String value) {
            addCriterion("ConcertName <", value, "concertname");
            return (Criteria) this;
        }

        public Criteria andConcertnameLessThanOrEqualTo(String value) {
            addCriterion("ConcertName <=", value, "concertname");
            return (Criteria) this;
        }

        public Criteria andConcertnameLike(String value) {
            addCriterion("ConcertName like", value, "concertname");
            return (Criteria) this;
        }

        public Criteria andConcertnameNotLike(String value) {
            addCriterion("ConcertName not like", value, "concertname");
            return (Criteria) this;
        }

        public Criteria andConcertnameIn(List<String> values) {
            addCriterion("ConcertName in", values, "concertname");
            return (Criteria) this;
        }

        public Criteria andConcertnameNotIn(List<String> values) {
            addCriterion("ConcertName not in", values, "concertname");
            return (Criteria) this;
        }

        public Criteria andConcertnameBetween(String value1, String value2) {
            addCriterion("ConcertName between", value1, value2, "concertname");
            return (Criteria) this;
        }

        public Criteria andConcertnameNotBetween(String value1, String value2) {
            addCriterion("ConcertName not between", value1, value2, "concertname");
            return (Criteria) this;
        }

        public Criteria andArtistIsNull() {
            addCriterion("Artist is null");
            return (Criteria) this;
        }

        public Criteria andArtistIsNotNull() {
            addCriterion("Artist is not null");
            return (Criteria) this;
        }

        public Criteria andArtistEqualTo(String value) {
            addCriterion("Artist =", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistNotEqualTo(String value) {
            addCriterion("Artist <>", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistGreaterThan(String value) {
            addCriterion("Artist >", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistGreaterThanOrEqualTo(String value) {
            addCriterion("Artist >=", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistLessThan(String value) {
            addCriterion("Artist <", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistLessThanOrEqualTo(String value) {
            addCriterion("Artist <=", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistLike(String value) {
            addCriterion("Artist like", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistNotLike(String value) {
            addCriterion("Artist not like", value, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistIn(List<String> values) {
            addCriterion("Artist in", values, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistNotIn(List<String> values) {
            addCriterion("Artist not in", values, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistBetween(String value1, String value2) {
            addCriterion("Artist between", value1, value2, "artist");
            return (Criteria) this;
        }

        public Criteria andArtistNotBetween(String value1, String value2) {
            addCriterion("Artist not between", value1, value2, "artist");
            return (Criteria) this;
        }

        public Criteria andConcertdateIsNull() {
            addCriterion("ConcertDate is null");
            return (Criteria) this;
        }

        public Criteria andConcertdateIsNotNull() {
            addCriterion("ConcertDate is not null");
            return (Criteria) this;
        }

        public Criteria andConcertdateEqualTo(Date value) {
            addCriterionForJDBCDate("ConcertDate =", value, "concertdate");
            return (Criteria) this;
        }

        public Criteria andConcertdateNotEqualTo(Date value) {
            addCriterionForJDBCDate("ConcertDate <>", value, "concertdate");
            return (Criteria) this;
        }

        public Criteria andConcertdateGreaterThan(Date value) {
            addCriterionForJDBCDate("ConcertDate >", value, "concertdate");
            return (Criteria) this;
        }

        public Criteria andConcertdateGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("ConcertDate >=", value, "concertdate");
            return (Criteria) this;
        }

        public Criteria andConcertdateLessThan(Date value) {
            addCriterionForJDBCDate("ConcertDate <", value, "concertdate");
            return (Criteria) this;
        }

        public Criteria andConcertdateLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("ConcertDate <=", value, "concertdate");
            return (Criteria) this;
        }

        public Criteria andConcertdateIn(List<Date> values) {
            addCriterionForJDBCDate("ConcertDate in", values, "concertdate");
            return (Criteria) this;
        }

        public Criteria andConcertdateNotIn(List<Date> values) {
            addCriterionForJDBCDate("ConcertDate not in", values, "concertdate");
            return (Criteria) this;
        }

        public Criteria andConcertdateBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("ConcertDate between", value1, value2, "concertdate");
            return (Criteria) this;
        }

        public Criteria andConcertdateNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("ConcertDate not between", value1, value2, "concertdate");
            return (Criteria) this;
        }

        public Criteria andConcerttimeIsNull() {
            addCriterion("ConcertTime is null");
            return (Criteria) this;
        }

        public Criteria andConcerttimeIsNotNull() {
            addCriterion("ConcertTime is not null");
            return (Criteria) this;
        }

        public Criteria andConcerttimeEqualTo(Date value) {
            addCriterionForJDBCTime("ConcertTime =", value, "concerttime");
            return (Criteria) this;
        }

        public Criteria andConcerttimeNotEqualTo(Date value) {
            addCriterionForJDBCTime("ConcertTime <>", value, "concerttime");
            return (Criteria) this;
        }

        public Criteria andConcerttimeGreaterThan(Date value) {
            addCriterionForJDBCTime("ConcertTime >", value, "concerttime");
            return (Criteria) this;
        }

        public Criteria andConcerttimeGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCTime("ConcertTime >=", value, "concerttime");
            return (Criteria) this;
        }

        public Criteria andConcerttimeLessThan(Date value) {
            addCriterionForJDBCTime("ConcertTime <", value, "concerttime");
            return (Criteria) this;
        }

        public Criteria andConcerttimeLessThanOrEqualTo(Date value) {
            addCriterionForJDBCTime("ConcertTime <=", value, "concerttime");
            return (Criteria) this;
        }

        public Criteria andConcerttimeIn(List<Date> values) {
            addCriterionForJDBCTime("ConcertTime in", values, "concerttime");
            return (Criteria) this;
        }

        public Criteria andConcerttimeNotIn(List<Date> values) {
            addCriterionForJDBCTime("ConcertTime not in", values, "concerttime");
            return (Criteria) this;
        }

        public Criteria andConcerttimeBetween(Date value1, Date value2) {
            addCriterionForJDBCTime("ConcertTime between", value1, value2, "concerttime");
            return (Criteria) this;
        }

        public Criteria andConcerttimeNotBetween(Date value1, Date value2) {
            addCriterionForJDBCTime("ConcertTime not between", value1, value2, "concerttime");
            return (Criteria) this;
        }

        public Criteria andVenueIsNull() {
            addCriterion("Venue is null");
            return (Criteria) this;
        }

        public Criteria andVenueIsNotNull() {
            addCriterion("Venue is not null");
            return (Criteria) this;
        }

        public Criteria andVenueEqualTo(String value) {
            addCriterion("Venue =", value, "venue");
            return (Criteria) this;
        }

        public Criteria andVenueNotEqualTo(String value) {
            addCriterion("Venue <>", value, "venue");
            return (Criteria) this;
        }

        public Criteria andVenueGreaterThan(String value) {
            addCriterion("Venue >", value, "venue");
            return (Criteria) this;
        }

        public Criteria andVenueGreaterThanOrEqualTo(String value) {
            addCriterion("Venue >=", value, "venue");
            return (Criteria) this;
        }

        public Criteria andVenueLessThan(String value) {
            addCriterion("Venue <", value, "venue");
            return (Criteria) this;
        }

        public Criteria andVenueLessThanOrEqualTo(String value) {
            addCriterion("Venue <=", value, "venue");
            return (Criteria) this;
        }

        public Criteria andVenueLike(String value) {
            addCriterion("Venue like", value, "venue");
            return (Criteria) this;
        }

        public Criteria andVenueNotLike(String value) {
            addCriterion("Venue not like", value, "venue");
            return (Criteria) this;
        }

        public Criteria andVenueIn(List<String> values) {
            addCriterion("Venue in", values, "venue");
            return (Criteria) this;
        }

        public Criteria andVenueNotIn(List<String> values) {
            addCriterion("Venue not in", values, "venue");
            return (Criteria) this;
        }

        public Criteria andVenueBetween(String value1, String value2) {
            addCriterion("Venue between", value1, value2, "venue");
            return (Criteria) this;
        }

        public Criteria andVenueNotBetween(String value1, String value2) {
            addCriterion("Venue not between", value1, value2, "venue");
            return (Criteria) this;
        }

        public Criteria andConcertImgIsNull() {
            addCriterion("Concert_img is null");
            return (Criteria) this;
        }

        public Criteria andConcertImgIsNotNull() {
            addCriterion("Concert_img is not null");
            return (Criteria) this;
        }

        public Criteria andConcertImgEqualTo(String value) {
            addCriterion("Concert_img =", value, "concertImg");
            return (Criteria) this;
        }

        public Criteria andConcertImgNotEqualTo(String value) {
            addCriterion("Concert_img <>", value, "concertImg");
            return (Criteria) this;
        }

        public Criteria andConcertImgGreaterThan(String value) {
            addCriterion("Concert_img >", value, "concertImg");
            return (Criteria) this;
        }

        public Criteria andConcertImgGreaterThanOrEqualTo(String value) {
            addCriterion("Concert_img >=", value, "concertImg");
            return (Criteria) this;
        }

        public Criteria andConcertImgLessThan(String value) {
            addCriterion("Concert_img <", value, "concertImg");
            return (Criteria) this;
        }

        public Criteria andConcertImgLessThanOrEqualTo(String value) {
            addCriterion("Concert_img <=", value, "concertImg");
            return (Criteria) this;
        }

        public Criteria andConcertImgLike(String value) {
            addCriterion("Concert_img like", value, "concertImg");
            return (Criteria) this;
        }

        public Criteria andConcertImgNotLike(String value) {
            addCriterion("Concert_img not like", value, "concertImg");
            return (Criteria) this;
        }

        public Criteria andConcertImgIn(List<String> values) {
            addCriterion("Concert_img in", values, "concertImg");
            return (Criteria) this;
        }

        public Criteria andConcertImgNotIn(List<String> values) {
            addCriterion("Concert_img not in", values, "concertImg");
            return (Criteria) this;
        }

        public Criteria andConcertImgBetween(String value1, String value2) {
            addCriterion("Concert_img between", value1, value2, "concertImg");
            return (Criteria) this;
        }

        public Criteria andConcertImgNotBetween(String value1, String value2) {
            addCriterion("Concert_img not between", value1, value2, "concertImg");
            return (Criteria) this;
        }
    }

    /**
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}